import * as React from 'react';
class Jxs extends React.Component{
    
     render() {
        return (
            <div className="c-react-home-wrap">
                <h2>ajax、axios、fetch之间的详细区别以及优缺点</h2>
                {/* <p>对目前的web来说，前后端分离已经变得越来越流行了，越来越多的企业/网站都开始往这个方向靠拢。</p> */}
                <ul>
                    <li>
                        <h4 className="list-title">jquery ajax</h4>
                        <p>本身是针对MVC的编程,不符合现在前端MVVM的浪潮</p>
                        <p>基于原生的XHR开发，XHR本身的架构不清晰，已经有了fetch的替代方案 </p>
                        <p>JQuery整个项目太大，单纯使用ajax却要引入整个JQuery非常的不合理（采取个性化打包的方案又不能享受CDN服务）</p>
                    </li>
                    <li>
                        <h4 className="list-title">asiox</h4>
                        <p>从 node.js 创建 http 请求
                        </p>
                        <p>支持 Promise API
                        </p>
                        <p>客户端支持防止CSRF</p>
                        <p>提供了一些并发请求的接口（重要，方便了很多的操作）</p>
                    </li>
                    <li>
                        <h4 className="list-title">fetch</h4>
                        <p>符合关注分离，没有将输入、输出和用事件来跟踪的状态混杂在一个对象里</p>
                        <p>更加底层，提供的API丰富（request, response）</p>
                        <p>脱离了XHR，是ES规范里新的实现方式</p>
                        <p>1）fetchtch只对网络请求报错，对400，500都当做成功的请求，需要封装去处理</p>
                        <p>2）fetch默认不会带cookie，需要添加配置项</p>
                        <p>3）fetch不支持abort，不支持超时控制，使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行，造成了量的浪费</p>
                        <p>4）fetch没有办法原生监测请求的进度，而XHR可以</p>
                    </li>
                    <li>
                        <h4 className="list-title">为什么要用axios?</h4>
                        
                        <p>
                        axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端，它本身具有以下特征：
                        </p>
                        <p>从浏览器中创建 XMLHttpRequest</p>
                        <p>从 node.js 发出 http 请求</p>
                        <p>支持 Promise API</p>
                        <p>拦截请求和响应</p>
                        <p>转换请求和响应数据</p>
                        <p>自动转换JSON数据</p>
                        <p>客户端支持防止CSRF/XSRF</p>
                    </li>
                </ul>
            </div>
        );
    }
}

export default Jxs;
